package com.wyy.service;

import com.wyy.pojo.Articles;
import com.wyy.pojo.LikeArticle;
import com.wyy.pojo.model.ArticleQueryCriteria;
import com.wyy.pojo.model.LabelSearch;

import java.util.Map;

/**
 * @program: gytcb
 * @author: 吴磊
 * @create: 2021-06-03 20:21
 */
public interface ArticleService {

    /**
     * 获取热门的文章标签
     *
     * @return
     */
    Map<String, Object> getHotArticleLabel();

    /**
     * 根据文章内容模糊查询文章
     * 如果userId为空就说明是查询全部
     *
     * @param articles
     * @return
     */
    Map<String, Object> getArticleByArticleContentLikeSearch(Articles articles);


    /**
     * 根据文章Id获取文章
     *
     * @param articles
     * @return
     */
    Map<String, Object> getArticleByArticleId(Articles articles);


    /**
     * 插入文章
     *
     * @param articles
     * @return
     */
    void insertArticle(Articles articles);


    /**
     * 根据文章ID删除文章及其他一切数据
     *
     * @param articleId
     */
    void deleteArticleByArticleId(String articleId);

    /**
     * 编辑帖子
     *
     * @param articles
     * @return
     */
    void updateArticle(Articles articles);

    /**
     * 点赞或取消点赞
     *
     * @param likeArticle
     */
    void likeOrCancelLikeArticle(LikeArticle likeArticle);

    /**
     * 通过一些条件查询文章
     * type:
     * hot 热门
     * cream 精华  1 天  7 天  30 天 例如 ： cream-24  cream-148 cream-720
     * latest 最新
     *
     * @param articleQueryCriteria
     * @return
     */
    Map<String, Object> getArticleBySomething(ArticleQueryCriteria articleQueryCriteria);

    /**
     * 根据标签模糊查询
     *
     * @param labelSearch
     * @return
     */
    Map<String, Object> getArticleBySearchLabel(LabelSearch labelSearch);

}
